package com.hck.domain.health.service;

import com.hck.domain.health.model.entity.*;

import java.util.List;

/**
 * 健康管理服務接口
 */
public interface IHealthService {
    
    // 健康檔案相關
    HealthProfileEntity getHealthProfile(Long userId);
    void saveHealthProfile(HealthProfileEntity profile);
    void updateHealthProfile(HealthProfileEntity profile);
    
    // 健康檢查記錄相關
    void addHealthCheckRecord(HealthCheckRecordEntity record);
    List<HealthCheckRecordEntity> getHealthCheckRecords(Long userId, String checkType);
    HealthCheckRecordEntity getLatestHealthCheckRecord(Long userId, String checkType);
    
    // 健康報告相關
    HealthReportEntity generateHealthReport(Long userId);
    List<HealthReportEntity> getHealthReports(Long userId);
    HealthReportEntity getHealthReportById(Long reportId);
    
    // 健康預警相關
    void checkAndGenerateAlerts(Long userId);
    List<HealthAlertEntity> getHealthAlerts(Long userId);
    List<HealthAlertEntity> getUnreadAlerts(Long userId);
    void markAlertAsRead(Long alertId);
    void markAlertAsHandled(Long alertId);
    
    // 綜合健康評估
    Integer calculateHealthScore(Long userId);
    String assessHealthRisk(Long userId);
}